#!/usr/bin/env python
# Create: 2018/10/12
__author__ = '749B'

import requests
from bs4 import BeautifulSoup

from utils.base64p import b64decode_str

# 所有的请求头可以从请求标头里找到，不过不是必须的
headers = {
    'User-Agent': '',  # 这个网站要验证这个请求头，不过只要有就可以通过
}

r1 = requests.get('https://dig.chouti.com', headers=headers)
r1_cookies = r1.cookies  # 这里有个gpsd，登录验证的时候要一并提交
print(r1_cookies.get_dict())

# 不能把密码上传啊
with open('password/s2.txt') as f:
    auth = f.read()
    auth = auth.split('\n')

post_dict = {
    'phone': '86%s' % auth[0],  # 从请求正文里发现，会在手机号前加上86
    'password': b64decode_str(auth[1]),
}

# 这个网站的登录机制是，发送验证信息和cookies里的gpsd，成功后给你的gpsd授权
# 之后的请求只有cookies里有这个授权过的gpsd就能认证通过
r2 = requests.post(
    url='https://dig.chouti.com/login',
    data=post_dict,
    headers=headers,
    cookies={'gpsd': r1_cookies['gpsd']}
)

print(r2.text)
r2_cookies = r2.cookies  # 这里也会返回一个新的gpsd，但是无用。
print(r2_cookies.get_dict())

# 获取咨询，然后点赞
r3 = requests.get(
    url='https://dig.chouti.com',
    headers=headers,
    cookies={'gpsd': r1_cookies['gpsd']},
)
r3.encoding = r3.apparent_encoding
soup = BeautifulSoup(r3.text, features='html.parser')
target = soup.find(id='content-list')
item = target.find('div', {'class': 'item'})
news = item.find('a', {'class': 'show-content'}).text
linksId = item.find('div', {'class': 'part2'}).attrs['share-linkid']
print('news:', news.strip())

# 点赞
r = requests.post(
    url='https://dig.chouti.com/link/vote?linksId=%s' % linksId,
    headers=headers,
    cookies={
        'gpsd': r1_cookies['gpsd'],
    }
)

print(r.text)





